package com.icinfo.cloud.provider.punish.api.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.icinfo.cloud.provider.punish.dto.CaseEvidencePhotoDto;
import com.icinfo.cloud.provider.punish.ucase.caseregister.dto.CaseHandlePersonInfoDto;
import com.icinfo.cloud.provider.punish.vo.CaseMainQueryByYearVo;
import com.icinfo.cloud.provider.punish.vo.CaseMainRepeatVo;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 描述：简易处罚详情信息视图对象
 *
 * @author xiangyuyu
 * @date 2022/8/13
 * @since 1.3.2
 */
@NoArgsConstructor
@Data
public class ApiSimpleCaseDetailInfoVo {
    /**
     * 案件id
     */
    private String caseId;
    /**
     * 案件名称
     */
    private String caseName;

    //--------------取证-------------start

    /**
     * 案发时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime caseHappenTime;

    /**
     * 案发地址定位信息
     */
    private String caseHappenAddressLocationInfo;

    /**
     * 案发详细地址
     */
    private String caseHappenAddressDetail;

    /**
     * 取证照片
     */
    private List<CaseEvidencePhotoDto> caseEvidencePhotoList;

    /**
     * 反映内容
     */
    private String caseReactionContent;

    /**
     * 备注
     */
    private String caseRemark;


//-----------------------------当事人信息----------start

    /**
     * 当事人类型 1:个人 2:法人
     */
    private String partyType;
    /**
     * 当事人姓名
     **/
    private String name;
    /**
     * 当事人性别
     **/
    private String sex;
    /**
     * 当事人出生年月
     **/
    private String birth;
    /**
     * 年龄
     */
    private String age;
    /**
     * 当事人联系电话
     **/
    private String mobile;
    /**
     * 当事人证件类型
     **/
    private String certType;
    /**
     * 当事人证件号码
     **/
    private String certNo;
    /**
     * 当事人住址
     **/
    private String address;
    /**
     * 当事人工作单位
     **/
    private String unitName;
    /**
     * 当事人民族
     **/
    private String nationality;

    /**
     * 法定代表人或负责人--当事人法人
     **/
    private String legal;

    /**
     * 工作单位的职务--当事人法人
     **/
    private String job;
    /**
     * 统一社会信用代码--当事人法人
     **/
    private String uniscid;
    /**
     * 工作单位的电话--当事人法人
     **/
    private String phone;
    /**
     * 单位的地址--当事人法人
     **/
    private String unitAddress;
    /**
     * 法人身份证--当事人法人
     **/
    private String legalCertNo;
    /**
     * 法人证件类型--当事人法人
     **/
    private String legalCertType;

    /**
     * 单位单位名称
     **/
    private String entName;
    /**
     * 单位类型
     **/
    private String entType;
    /**
     * 经营地址
     */
    private String businessAddress;

    /**
     * 当事人id ----后台逻辑使用
     */
    private String partyId;

    //-----------------------------当事人信息----------end


    //------------------案由------------------start
    /**
     * 领域code---案由
     **/
    private String territoryCode;
    /**
     * 案由
     */
    private String caseReasonName;
    /**
     * 案由id ,外部接口获取
     */
    private String caseReasonId;
    /**
     * 案由编码 ,外部接口获取
     */
    private String caseReasonCode;
    /**
     * 违则
     **/
    private String illegalBasis;

    /**
     * 违则详情
     **/
    private String illegalDetail;
    /**
     * 罚则
     **/
    private String punishBasis;
    /**
     * 罚则详情
     **/
    private String punishDetail;
    /**
     * 事项编码
     **/
    private String itemVersionCode;
    /**
     * 事项id
     **/
    private String claimId;

    /**
     * 案由ids,前端回显使用
     */
    private String[] caseReasonIds;

    //------------------案由------------------end


    //-----------------处罚信息----------------start
    /**
     * 办案人员列表
     */
    private List<CaseHandlePersonInfoDto> handlePersonInfoList;

    /**
     * 违法事实
     */
    private String illegalFact;

    /**
     * 拟处罚内容(多个以,分割)
     */
    private String punishKinds;

    /**
     * 拟处罚金额
     */
    private String draftPunishMoney;

    /**
     * 缴款方式 (1:自行缴纳2:当场缴纳)
     */
    private String payWay;

    //-----------------处罚信息----------------end


    //-----------------责令信息----------------start

    /**
     * 整改方式(1:立即整改2:限期整改3:其他)
     */
    private String correctWay;

    /**
     * 整改截止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private String correctEndDate;

    /**
     * 其他整改方式说明
     */
    private String correctOtherContent;

    //-----------------责令信息----------------end

    /**
     * 是否自动保存 0:否 1:是 --- 暂存接口使用
     */
    private String isAutoSave;

    /**
     * 数据来源(数据字典-ApiVisitDataSourceEnum)
     */
    private String dataSource;

    /**
     * 处罚决定书文号
     */
    private String punishDocumentNumber;

    /**
     * 案件编号
     */
    private String caseNumber;

    /**
     * 数据来源方业务唯一主键id
     */
    private String dataSourceServiceId;

    /**
     * 处罚决定书地址
     */
    private String punishDocumentUrl;

    /**
     * 处罚决定时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime caseVerdictEndTime;

    /**
     * 违法次数
     */
    private int illegalNum;

    /**
     * 重复违法次数
     */
    private int illegalRepeatNum;

    /**
     * 1年内当事人相同案由违法列表
     */
    private List<CaseMainRepeatVo> illegalRepeatInfoList;

    /**
     * 1年内当事人违法列表
     */
    private List<CaseMainRepeatVo> illegalInfoList;
}
